home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / SNNSV32.ZIP / SNNSv3.2 / xgui / sources / ui_setup.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-04-25  |  12.5 KB  |  399 lines

  1. /*****************************************************************************
  2.   FILE           : ui_setup.c
  3.   SHORTNAME      : setup.c
  4.   SNNS VERSION   : 3.2
  5.  
  6.   PURPOSE        :
  7.   NOTES          :
  8.  
  9.   AUTHOR         : Tilman Sommer
  10.   DATE           : 26.6.1990
  11.  
  12.   CHANGED BY     :
  13.   IDENTIFICATION : @(#)ui_setup.c    1.12 3/2/94
  14.   SCCS VERSION   : 1.12
  15.   LAST CHANGE    : 3/2/94
  16.  
  17.              Copyright (c) 1990-1994  SNNS Group, IPVR, Univ. Stuttgart, FRG
  18.  
  19. ******************************************************************************/
  20.  
  21.  
  22. #include <stdio.h>
  23.  
  24. #include "ui.h"
  25.  
  26. #include <X11/Xaw/Form.h>
  27. #include <X11/Xaw/Box.h>
  28. #include <X11/Xaw/Toggle.h>
  29. #include <X11/Xaw/Cardinals.h>
  30. #include <X11/Xaw/SimpleMenu.h>
  31. #include <X11/Xaw/SmeBSB.h>
  32. #include <X11/Xaw/SmeLine.h>
  33.  
  34. #include "ui_xWidgets.h"
  35. #include "ui_setupP.h"
  36. #include "ui_display.h"
  37. #include "ui_colEdit.h"
  38.  
  39. #include "ui_mainP.h"
  40. #include "ui_color.h"
  41. #include "ui_action.h"
  42.  
  43. #include "ui_setup.ph"
  44.  
  45.  
  46. /*****************************************************************************
  47.   FUNCTION : ui_set_initData 
  48.   
  49.   PURPOSE  : init setup data of specified display
  50.   RETURNS  : void
  51.   NOTES    :
  52.   
  53.   UPDATE   : 1.2.1990
  54. ******************************************************************************/
  55.  
  56. void ui_set_initData (struct Ui_DisplayType *displayPtr)
  57.  
  58. {
  59.     (displayPtr->setup).showLinkFlg         = FALSE;
  60.     (displayPtr->setup).showDirectionFlg    = FALSE;
  61.     (displayPtr->setup).showWeightFlg       = FALSE;
  62.     (displayPtr->setup).showValue           = UI_ACTIVATION;
  63.     (displayPtr->setup).showTitle           = UI_NUMBER;
  64.     (displayPtr->setup).showTitleFlg        = TRUE;
  65.     (displayPtr->setup).showValueFlg        = TRUE;
  66.     (displayPtr->setup).linkNegTrigger      = 0.0;
  67.     (displayPtr->setup).linkPosTrigger      = 0.0;
  68.     (displayPtr->setup).unitScaleFactor     = 1.0;
  69.     (displayPtr->setup).linkScaleFactor     = 5.0;
  70.     if (NOT ui_col_monochromeMode) {
  71.        (displayPtr->setup).backgroundColorIndex = ui_initalBackgroundColorIndex; 
  72.        (displayPtr->setup).selectionColorIndex = ui_initalSelectionColorIndex; 
  73.        (displayPtr->setup).textColorIndex = ui_initalTextColorIndex;
  74.     }
  75.     else {
  76.        (displayPtr->setup).backgroundColorIndex = UI_WHITE; 
  77.        (displayPtr->setup).selectionColorIndex = UI_YELLOW; 
  78.        (displayPtr->setup).textColorIndex = UI_BLACK;
  79.     }
  80.     sprintf((displayPtr->setup).siteName,"");
  81. }
  82.  
  83.  
  84. /*****************************************************************************
  85.   FUNCTION : ui_xCreateSetupPanel
  86.  
  87.   PURPOSE  : creates a form widget for for all setup elements 
  88.   RETURNS  : void
  89.   NOTES    : some constants are used (see below) to get a relativ positioning
  90.              of the items. This is VERY useful after changings.
  91.  
  92.   UPDATE   : 28.8.1991
  93. *****************************************************************************/
  94.  
  95. void ui_xCreateSetupPanel (Widget parent, struct Ui_DisplayType *displayPtr)
  96.  
  97. {
  98.     /* tabs for data fields and small buttons */
  99.  
  100.     Widget      topLabel, bottomLabel, lLabel, toggle, toggleLabel, scrollbar;
  101.     Widget      button, mButton, menu, entry;
  102.     char        buf[80];
  103.     float       topOfThumb;
  104.     
  105.     int  fontWidth = 8;
  106.  
  107.     int  titelWidth  = 15 * fontWidth;
  108.     int  noWidth     =  4 * fontWidth;
  109.     int  numberWidth =  8 * fontWidth;
  110.     int  nameWidth   = 15 * fontWidth; 
  111.  
  112. /***************************************************************************/
  113.  
  114.     ui_setupPanel = 
  115.     XtCreateManagedWidget("sPanel", formWidgetClass, parent, NULL, ZERO);
  116.  
  117.     /* which display is to setup ? */
  118.     ui_set_displayPtr =  displayPtr;
  119.     
  120.     
  121. /*****************************  OPTIONS  ***********************************/
  122.  
  123.     topLabel =
  124.     ui_xCreateLabelItem("units top    :", ui_setupPanel, 
  125.                titelWidth, NULL, NULL);
  126.     
  127.  
  128.     toggle =
  129.     ui_xCreateToggleItem("on", ui_setupPanel,
  130.                  NULL, topLabel, NULL);
  131.     ui_xSetToggleState(toggle, (ui_set_displayPtr->setup).showTitleFlg);
  132.     XtAddCallback(toggle, XtNcallback, (XtCallbackProc) ui_set_getSetupData, 
  133.           (caddr_t) UI_UNIT_TOP_GENERAL);
  134.  
  135.     mButton =
  136.     ui_xCreateMenuButtonItem("show", ui_setupPanel, 
  137.                  toggle, NULL);
  138.  
  139.     menu = 
  140.     XtCreatePopupShell("menu", simpleMenuWidgetClass, mButton,
  141.                NULL, ZERO);
  142.  
  143.     entry =
  144.     XtCreateManagedWidget("name", smeBSBObjectClass, menu,
  145.                   NULL, ZERO);
  146.     XtAddCallback(entry, XtNcallback, (XtCallbackProc) ui_set_showProc, (caddr_t) UI_NAME);
  147.     entry =
  148.     XtCreateManagedWidget("number", smeBSBObjectClass, menu,
  149.                   NULL, ZERO);
  150.     XtAddCallback(entry, XtNcallback, (XtCallbackProc) ui_set_showProc, (caddr_t) UI_NUMBER);
  151.     entry =
  152.     XtCreateManagedWidget("z-value", smeBSBObjectClass, menu,
  153.                   NULL, ZERO);
  154.     XtAddCallback(entry, XtNcallback, (XtCallbackProc) ui_set_showProc, (caddr_t) UI_ZVALUE);
  155.  
  156.     entry =
  157.         XtCreateManagedWidget("winner", smeBSBObjectClass, menu,
  158.                   NULL, ZERO);
  159.     XtAddCallback(entry, XtNcallback, (XtCallbackProc) ui_set_showProc, (caddr_t) UI_WINNER);
  160.  
  161.     ui_showTopLabel =
  162.     ui_xCreateLabelItem(" ", ui_setupPanel,
  163.                 nameWidth, mButton,   NULL);
  164.  
  165.     ui_set_showProc(NULL, (ui_set_displayPtr->setup).showTitle, NULL); 
  166.     /* initial value */
  167.  
  168.  
  169.     bottomLabel =
  170.     ui_xCreateLabelItem("      bottom :", ui_setupPanel, 
  171.                titelWidth, NULL, topLabel);
  172.  
  173.     toggle =
  174.     ui_xCreateToggleItem("on", ui_setupPanel,
  175.                 NULL, bottomLabel, topLabel);
  176.     ui_xSetToggleState(toggle, (ui_set_displayPtr->setup).showValueFlg);
  177.     XtAddCallback(toggle, XtNcallback, (XtCallbackProc) ui_set_getSetupData, 
  178.           (caddr_t) UI_UNIT_BOTTOM_GENERAL);
  179.  
  180.     mButton =
  181.     ui_xCreateMenuButtonItem("show", ui_setupPanel,
  182.                  toggle, topLabel);
  183.  
  184.     menu = 
  185.     XtCreatePopupShell("menu", simpleMenuWidgetClass, mButton,
  186.                NULL, ZERO);
  187.  
  188.     entry =
  189.     XtCreateManagedWidget("activation", smeBSBObjectClass, menu,
  190.                   NULL, ZERO);
  191.     XtAddCallback(entry, XtNcallback, (XtCallbackProc) ui_set_showProc, 
  192.     (caddr_t) UI_ACTIVATION);
  193.     entry =
  194.     XtCreateManagedWidget("initial act.", smeBSBObjectClass, menu,
  195.                   NULL, ZERO);
  196.     XtAddCallback(entry, XtNcallback, (XtCallbackProc) ui_set_showProc, 
  197.     (caddr_t) UI_INITIAL_ACTIVATION);
  198.     entry =
  199.     XtCreateManagedWidget("output", smeBSBObjectClass, menu,
  200.                   NULL, ZERO);
  201.     XtAddCallback(entry, XtNcallback, (XtCallbackProc) ui_set_showProc, (caddr_t) UI_OUTPUT);
  202.     entry =
  203.     XtCreateManagedWidget("bias", smeBSBObjectClass, menu,
  204.                   NULL, ZERO);
  205.     XtAddCallback(entry, XtNcallback, (XtCallbackProc) ui_set_showProc, (caddr_t) UI_BIAS);
  206.  
  207.     ui_showBottomLabel =
  208.     ui_xCreateLabelItem(" ", ui_setupPanel,
  209.                 nameWidth, mButton,   topLabel);
  210.     ui_set_showProc(NULL, (ui_set_displayPtr->setup).showValue, NULL); 
  211.     /* initial value */
  212.  
  213.  
  214.     lLabel =
  215.     ui_xCreateLabelItem("links        :", ui_setupPanel, 
  216.                titelWidth, NULL, bottomLabel);
  217.  
  218.     toggle =
  219.     ui_xCreateToggleItem("on", ui_setupPanel,
  220.                 NULL, lLabel, bottomLabel);
  221.     ui_xSetToggleState(toggle, (ui_set_displayPtr->setup).showLinkFlg);
  222.     XtAddCallback(toggle, XtNcallback, (XtCallbackProc) ui_set_getSetupData, 
  223.           (caddr_t) UI_LINK_GENERAL);
  224.     toggle =
  225.     ui_xCreateToggleItem("value",     ui_setupPanel,
  226.                 NULL, toggle, bottomLabel);
  227.     ui_xSetToggleState(toggle, (ui_set_displayPtr->setup).showWeightFlg);
  228.     XtAddCallback(toggle, XtNcallback, (XtCallbackProc) ui_set_getSetupData, 
  229.           (caddr_t) UI_LINK_VALUE);
  230.  
  231.     toggle =
  232.     ui_xCreateToggleItem("direction",  ui_setupPanel,
  233.                 NULL, toggle, bottomLabel);
  234.     ui_xSetToggleState(toggle, (ui_set_displayPtr->setup).showDirectionFlg);
  235.     XtAddCallback(toggle, XtNcallback, (XtCallbackProc) ui_set_getSetupData, 
  236.           (caddr_t) UI_LINK_DIRECTION);
  237.  
  238.  
  239.     button =
  240.     ui_xCreateButtonItem("layers",    ui_setupPanel,
  241.                  NULL, toggle);
  242.     XtAddCallback(button, XtNcallback, (XtCallbackProc) ui_set_assignLayers, NULL);
  243.  
  244.     if (ui_col_colorDisplay) {
  245.         mButton =
  246.         ui_xCreateButtonItem("color", ui_setupPanel,
  247.                      button, toggle);
  248.         XtAddCallback(mButton, XtNcallback, (XtCallbackProc) ui_createColorEditPannel, 
  249.                        (Widget) mButton);
  250.     } else {
  251.         mButton =
  252.         ui_xCreateMenuButtonItem("color", ui_setupPanel,
  253.                      button, toggle);
  254.         menu = 
  255.         XtCreatePopupShell("menu", simpleMenuWidgetClass, mButton,
  256.                NULL, ZERO);
  257.  
  258.         entry =
  259.         XtCreateManagedWidget("black on white", smeBSBObjectClass, menu,
  260.                   NULL, ZERO);
  261.         XtAddCallback(entry, XtNcallback, (XtCallbackProc) ui_set_colorProc, 
  262.         (caddr_t) UI_PALETTE_MONO);
  263.         entry =
  264.         XtCreateManagedWidget("white on black", smeBSBObjectClass, menu,
  265.                   NULL, ZERO);
  266.         XtAddCallback(entry, XtNcallback, (XtCallbackProc) ui_set_colorProc, 
  267.         (caddr_t) UI_PALETTE_MONO_INVERSE);
  268.     }
  269.  
  270. /*    lLabel =
  271.     ui_xCreateLabelItem("units positiv: ", ui_setupPanel, 
  272.                 titelWidth, NULL, button);
  273.     
  274.     topOfThumb = (float) ((ui_set_displayPtr->setup).unitPosTrigger / ui_maxAct);
  275.     scrollbar = 
  276.     ui_xCreateScrollbarItem("trigger", ui_setupPanel, 200, topOfThumb, 
  277.                 topLabel, button);
  278.     XtAddCallback(scrollbar, XtNjumpProc, (XtCallbackProc) ui_thumbed, (caddr_t) UNITS_POS);
  279.     
  280.     
  281.     toggleLabel =
  282.     ui_xCreateLabelItem("units negativ:", ui_setupPanel, 
  283.                titelWidth, NULL, scrollbar);
  284.  
  285.     topOfThumb = (ui_set_displayPtr->setup).unitNegTrigger / ui_minAct;
  286.     scrollbar = 
  287.     ui_xCreateScrollbarItem("trigger", ui_setupPanel, 200, topOfThumb,
  288.                    topLabel, scrollbar);
  289.     XtAddCallback(scrollbar, XtNjumpProc, (XtCallbackProc) ui_thumbed, (caddr_t) UNITS_NEG);
  290. */
  291.  
  292.     toggleLabel =
  293.     ui_xCreateLabelItem("links positiv:", ui_setupPanel, 
  294.                titelWidth, NULL, button);
  295.  
  296.     topOfThumb = (float) (ui_set_displayPtr->setup).linkPosTrigger / ui_maxWeight;
  297.     scrollbar = 
  298.     ui_xCreateScrollbarItem("trigger", ui_setupPanel, 200, topOfThumb,
  299.                    topLabel, button);
  300.     XtAddCallback(scrollbar, XtNjumpProc, (XtCallbackProc) ui_thumbed, (caddr_t) UI_LINKS_POS);
  301.  
  302.  
  303.     toggleLabel =
  304.     ui_xCreateLabelItem("links negativ:", ui_setupPanel, 
  305.                titelWidth, NULL, scrollbar);
  306.  
  307.     topOfThumb = (float) (ui_set_displayPtr->setup).linkNegTrigger / ui_minWeight;
  308.     scrollbar = 
  309.     ui_xCreateScrollbarItem("trigger", ui_setupPanel, 200, topOfThumb, 
  310.                    topLabel, scrollbar);
  311.     XtAddCallback(scrollbar, XtNjumpProc, (XtCallbackProc) ui_thumbed, (caddr_t) UI_LINKS_NEG);
  312.  
  313.  
  314.     if (ui_col_colorDisplay) {
  315.     toggleLabel =
  316.         ui_xCreateLabelItem("links scale  :", ui_setupPanel, 
  317.                 titelWidth, NULL, scrollbar);
  318.     
  319.     topOfThumb = 
  320.         (float) (ui_set_displayPtr->setup).linkScaleFactor / 10.0;
  321.     scrollbar = 
  322.         ui_xCreateScrollbarItem("trigger", ui_setupPanel, 200, topOfThumb,
  323.                     topLabel, scrollbar);
  324.     XtAddCallback(scrollbar, XtNjumpProc, (XtCallbackProc) ui_thumbed, 
  325.         (caddr_t) UI_SCALE_LINKS);
  326.     }
  327.  
  328.     toggleLabel =
  329.     ui_xCreateLabelItem("units scale  :", ui_setupPanel, 
  330.                titelWidth, NULL, scrollbar);
  331.  
  332.     topOfThumb = (float) (ui_set_displayPtr->setup).unitScaleFactor / ui_maxAct;
  333.     scrollbar = 
  334.     ui_xCreateScrollbarItem("trigger", ui_setupPanel, 200, topOfThumb,
  335.                    topLabel, scrollbar);
  336.     XtAddCallback(scrollbar, XtNjumpProc, (XtCallbackProc) ui_thumbed, (caddr_t) UI_SCALE_FACTOR);
  337.  
  338.  
  339.     toggleLabel =
  340.     ui_xCreateLabelItem("grid width   :", ui_setupPanel, 
  341.                titelWidth, NULL, scrollbar);
  342.  
  343.     sprintf(buf,"%d", ui_set_displayPtr->gridSize);
  344.     ui_set_gridWidthWidget =
  345.     ui_xCreateDialogItem("gridWidth", ui_setupPanel, buf, noWidth,
  346.                  topLabel, scrollbar);
  347.  
  348.     
  349.     toggleLabel =
  350.     ui_xCreateLabelItem("origin (grid):", ui_setupPanel, 
  351.                titelWidth, NULL, toggleLabel);
  352.  
  353.     sprintf(buf,"%d", ui_set_displayPtr->origin.x);
  354.     ui_set_originXWidget =
  355.     ui_xCreateDialogItem("origin", ui_setupPanel, buf, numberWidth,
  356.                  topLabel, ui_set_gridWidthWidget);
  357.  
  358.     sprintf(buf,"%d", ui_set_displayPtr->origin.y);
  359.     ui_set_originYWidget =
  360.     ui_xCreateDialogItem("origin", ui_setupPanel, buf, numberWidth,
  361.                  ui_set_originXWidget, ui_set_gridWidthWidget);
  362.  
  363.     toggleLabel =
  364.     ui_xCreateLabelItem("subnet number:", ui_setupPanel, 
  365.                titelWidth, NULL, toggleLabel);
  366.  
  367.     sprintf(buf,"%d", ui_set_displayPtr->subNetNo);
  368.     ui_set_subnetWidget =
  369.     ui_xCreateDialogItem("subnetNo", ui_setupPanel, buf, numberWidth,
  370.                  toggleLabel, ui_set_originXWidget);
  371.  
  372.     
  373.     toggleLabel =
  374.     ui_xCreateLabelItem("z-value      :", ui_setupPanel, 
  375.                titelWidth, NULL, toggleLabel);
  376.  
  377.     sprintf(buf,"%d", ui_actualZvalue);
  378.     ui_set_zWidget =
  379.     ui_xCreateDialogItem("zValue", ui_setupPanel, buf, numberWidth,
  380.                  toggleLabel, ui_set_subnetWidget);
  381.  
  382.  
  383. /***************************************************************************/
  384.  
  385.     XawFormDoLayout(ui_setupPanel, TRUE);
  386.     ui_setupIsCreated = TRUE;
  387. }
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397. /* end of file */
  398. /* lines: 403 */
  399.